import re
import pandas as pd
from sqlalchemy import create_engine


def information():
    # 根据实际情况修改服务器地址、数据库名、用户名和密码
    server = 'DESKTOP-2NR5UU8'
    username = 'abc'
    password = '123456'
    database = 'python'
    # 使用 utf-8 或 gbk 字符集，根据实际情况选择
    connection_str = f'mssql+pyodbc://{username}:{password}@{server}/{database}?driver=ODBC+Driver+17+for+SQL+Server&charset=utf-8'
    engine = create_engine(connection_str)
    # 读取数据
    df = pd.read_sql('SELECT * FROM lianjia', engine)

    # 提取年份、国别、类型、导演
    for index, row in df.iterrows():
        str = row[('房屋属性')]

        房屋户型 = re.findall('房屋户型:(.*?) .*',str)
        房屋户型 = re.findall('房屋户型:(.*?) .*',str)[0] if 房屋户型 else '暂无数据'

        所在楼层 = re.findall('所在楼层:(.*?) .*',str)
        所在楼层 = re.findall('所在楼层:(.*?) .*',str)[0] if 所在楼层 else '暂无数据'

        建筑面积 = re.findall('建筑面积:(.*?) .*',str)
        建筑面积 = re.findall('建筑面积:(.*?) .*',str)[0] if 建筑面积 else '暂无数据'

        户型结构 = re.findall('户型结构:(.*?) .*',str)
        户型结构 = re.findall('户型结构:(.*?) .*',str)[0] if 户型结构 else '暂无数据'

        套内面积 = re.findall('套内面积:(.*?) .*',str)
        套内面积 = re.findall('套内面积:(.*?) .*',str)[0] if 套内面积 else '暂无数据'

        建筑类型 = re.findall('建筑类型:(.*?) .*',str)
        建筑类型 = re.findall('建筑类型:(.*?) .*',str)[0] if 建筑类型 else '暂无数据'

        房屋朝向 = re.findall('房屋朝向:(.*?) .*',str)
        房屋朝向 = re.findall('房屋朝向:(.*?) .*',str)[0] if 房屋朝向 else '暂无数据'

        建筑结构 = re.findall('建筑结构:(.*?) .*',str)
        建筑结构 = re.findall('建筑结构:(.*?) .*',str)[0] if 建筑结构 else '暂无数据'

        装修情况 = re.findall('装修情况:(.*?) .*',str)
        装修情况 = re.findall('装修情况:(.*?) .*',str)[0] if 装修情况 else '暂无数据'

        梯户比例 = re.findall('梯户比例:(.*?) .*',str)
        梯户比例 = re.findall('梯户比例:(.*?) .*',str)[0] if 梯户比例 else '暂无数据'

        配备电梯 = re.findall('配备电梯:(.*?) .*',str)
        配备电梯 = re.findall('配备电梯:(.*?) .*',str)[0] if 配备电梯 else '暂无数据'

        楼层高度 = re.findall('楼层高度:(.*?) .*',str)
        楼层高度 = re.findall('楼层高度:(.*?) .*',str)[0] if 楼层高度 else '暂无数据'

        df.at[index, '房屋户型'] = 房屋户型
        df.at[index, '所在楼层'] = 所在楼层
        df.at[index, '建筑面积'] = 建筑面积
        df.at[index, '户型结构'] = 户型结构
        df.at[index, '套内面积'] = 套内面积
        df.at[index, '建筑类型'] = 建筑类型
        df.at[index, '房屋朝向'] = 房屋朝向
        df.at[index, '建筑结构'] = 建筑结构
        df.at[index, '装修情况'] = 装修情况
        df.at[index, '梯户比例'] = 梯户比例
        df.at[index, '配备电梯'] = 配备电梯
        df.at[index, '楼层高度'] = 楼层高度
    df.to_sql('lianjia_Last_version', con=engine, if_exists='replace', index=False)
    # 写回MySQL，这里假设你已经创建了一个新的表'updated_table'
    for index, row in df.iterrows():
        # 挂牌时间:2024-06-27 | 交易权属:商品房 | 上次交易:暂无数据 | 房屋用途:普通住宅 | 房屋年限:暂无数据 | 产权所属:非共有 | 抵押信息:有抵押 90万元 金融公司垫资 |
        # 房本备件:未上传房本照片 | 房源核验编码:600230553 |
        # 挂牌时间: 2024 - 06 - 30 | 交易权属:商品房 | 上次交易: 暂无数据 | 房屋用途:普通住宅 | 房屋年限: 暂无数据 | 产权所属:非共有 | 抵押信息: 无抵押 | 房本备件:未上传房本照片 |
        str = row['交易属性']

        挂牌时间 = re.findall('挂牌时间:(.*?) .*',str)
        挂牌时间 = re.findall('挂牌时间:(.*?) .*',str)[0] if 挂牌时间 else '暂无数据'

        交易权属 = re.findall('交易权属:(.*?) .*',str)
        交易权属 = re.findall('交易权属:(.*?) .*',str)[0] if 交易权属 else '暂无数据'

        上次交易 = re.findall('上次交易:(.*?) .*',str)
        上次交易 = re.findall('上次交易:(.*?) .*',str)[0] if 上次交易 else '暂无数据'

        房屋用途 = re.findall('房屋用途:(.*?) .*',str)
        房屋用途 = re.findall('房屋用途:(.*?) .*',str)[0] if 房屋用途 else '暂无数据'

        房屋年限 = re.findall('房屋年限:(.*?) .*',str)
        房屋年限 = re.findall('房屋年限:(.*?) .*',str)[0] if 房屋年限 else '暂无数据'

        产权所属 = re.findall('产权所属:(.*?) .*',str)
        产权所属 = re.findall('产权所属:(.*?) .*',str)[0] if 产权所属 else '暂无数据'

        抵押信息 = re.findall('抵押信息:(.*?) .*',str)
        抵押信息 = re.findall('抵押信息:(.*?) .*',str)[0] if 抵押信息 else '暂无数据'

        房本备件 = re.findall('房本备件:(.*?) .*',str)
        房本备件 = re.findall('房本备件:(.*?) .*',str)[0] if 房本备件 else '暂无数据'

        房源核验编码 = re.findall('房源核验编码:(.*?) .*',str)
        房源核验编码 = re.findall('房源核验编码:(.*?) .*',str)[0] if 房源核验编码 else '暂无数据'


        df.at[index, '挂牌时间'] = 挂牌时间
        df.at[index, '交易权属'] = 交易权属
        df.at[index, '上次交易'] = 上次交易
        df.at[index, '房屋用途'] = 房屋用途
        df.at[index, '房屋年限'] = 房屋年限
        df.at[index, '产权所属'] = 产权所属
        df.at[index, '抵押信息'] = 抵押信息
        df.at[index, '房本备件'] = 房本备件
        df.at[index, '房源核验编码'] = 房源核验编码
    # 写回MySQL，这里假设你已经创建了一个新的表'updated_table'
    df.to_sql('lianjia_Last_version', con=engine, if_exists='replace', index=False)